package orquesta;

import java.util.*;
/**
 * 
 * @author Dani Lopez Marmol
 *
 */
abstract class Instrumento {
	private int i;
   // public abstract void tocar (DO) {
	//}   
	public String Soy() {
	return "Instrumento";
	
    }
 
    public abstract void afinar();
	
}
// NO FUNCIONA
//public enum Nota {
	// DO, RE, MI, FA, SOL, LA, SI;
	//}

class Viento extends Instrumento {
    public void tocar() {
	System.out.println("Trompeta.tocar()");
    }
    /**
     * 
     * @return
     */
    public String tipo() { return "Trompeta"; }
    public void afinar() {}
}


class Percusion extends Instrumento {
    public void tocar() {
	System.out.println("Tambor.tocar()");
    }
    public String tipo() { return "Tambor"; }
    public void afinar() {}
}

/**
 *
 */
class Cuerda extends Viento {
    public void tocar() {
      System.out.println("Española.tocar()");
    }
    public void afinar() {
      System.out.println("Española.afinar()");
    }
     }

public class Musica {

  
    static void afinar(Instrumento i) {
	
	((Viento) i).tocar();
    }

    static void afinarTodo(Instrumento[] e) {
	
	for(int i = 0; i < e.length; i++)
	    afinar(e[i]);
    }

/**
 * 
 * @param args
 */
    public static void main(String[] args) {
        
	Instrumento[] orquesta = new Instrumento[5];
  
	int i = 0;

	orquesta[i++] = new Viento();
	orquesta[i++] = new Percusion();
	orquesta[i++] = new Cuerda();

	afinarTodo(orquesta);
    }
}
